Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mobile - Highlight words #36028

Merged
merged 39 commits into from
Dec 9, 2021
Merged

Mobile - Highlight words #36028

merged 39 commits into from
Dec 9, 2021

Conversation

geriux
Copy link
Member

@geriux geriux commented Oct 28, 2021

Description

This PR adds the functionality to be able to customize colors for selected words. For now, users will only be able to change the text color, the functionality to customize the background color will not be supported on mobile for now.

How has this been tested?

Test case 1 - Using a color from a theme's color palette

Precondition: Site with a universal theme e.g Geologist, Quadrat, Zoologist.

  • Open the app and start a new post
  • Type in some text
  • Select a word or some words
  • In the formating toolbar look for the Highlight option and select it
  • Expect to see the bottom sheet open with the color palette of the theme
  • Select one of the theme colors (not a custom one)
  • Close the bottom sheet and expect to see the selected color applied
  • Preview the post
  • Expect to see the colors correctly
  • Save the post and close it
  • Open the created post
  • Expect to see the color you added before

Test case 2 - Using a custom color

Precondition: Site with a universal theme e.g Geologist, Quadrat, Zoologist.

  • Open the app and start a new post
  • Type in some text
  • Select a word or some words
  • In the formating toolbar look for the Highlight option and select it
  • Expect to see the bottom sheet open with the color palette of the theme
  • Select the CUSTOM option
  • Choose any color and apply the changes
  • Close the bottom sheet and expect to see the selected color applied
  • Preview the post
  • Expect to see the colors correctly
  • Save the post and close it
  • Open the created post
  • Expect to see the color you added before

Test case 3 - Using a color from the default color palette

Precondition: Site without any custom theme colors e.g Blank Canvas

  • Open the app and start a new post
  • Type in some text
  • Select a word or some words
  • In the formating toolbar look for the Highlight option and select it
  • Expect to see the bottom sheet open with the default color palette
  • Select one of the colors from the palette
  • Close the bottom sheet and expect to see the selected color applied
  • Preview the post
  • Expect to see the colors correctly
  • Save the post and close it
  • Open the created post
  • Expect to see the color you added before

Screenshots

Test case 1 Test case 2 Test case 3

Types of changes

New feature

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all *.native.js files for terms that need renaming or removal).

@geriux geriux added [Status] In Progress Tracking issues with work in progress Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) labels Oct 28, 2021
@github-actions
Copy link

github-actions bot commented Oct 28, 2021

Size Change: +34 B (0%)

Total Size: 1.11 MB

Filename Size Change
build/block-editor/index.min.js 139 kB +5 B (0%)
build/components/index.min.js 215 kB +13 B (0%)
build/edit-site/index.min.js 35.5 kB +16 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 960 B
build/admin-manifest/index.min.js 1.1 kB
build/annotations/index.min.js 2.75 kB
build/api-fetch/index.min.js 2.21 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.28 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/style-rtl.css 14.4 kB
build/block-editor/style.css 14.4 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 58 B
build/block-library/blocks/audio/editor.css 58 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 134 B
build/block-library/blocks/code/theme.css 134 B
build/block-library/blocks/columns/editor-rtl.css 210 B
build/block-library/blocks/columns/editor.css 208 B
build/block-library/blocks/columns/style-rtl.css 503 B
build/block-library/blocks/columns/style.css 502 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.22 kB
build/block-library/blocks/cover/style.css 1.22 kB
build/block-library/blocks/embed/editor-rtl.css 488 B
build/block-library/blocks/embed/editor.css 488 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 966 B
build/block-library/blocks/gallery/editor.css 970 B
build/block-library/blocks/gallery/style-rtl.css 1.63 kB
build/block-library/blocks/gallery/style.css 1.62 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 507 B
build/block-library/blocks/image/style.css 511 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B
build/block-library/blocks/latest-posts/editor.css 137 B
build/block-library/blocks/latest-posts/style-rtl.css 528 B
build/block-library/blocks/latest-posts/style.css 527 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 649 B
build/block-library/blocks/navigation-link/editor.css 650 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.91 kB
build/block-library/blocks/navigation/editor.css 1.91 kB
build/block-library/blocks/navigation/style-rtl.css 1.68 kB
build/block-library/blocks/navigation/style.css 1.67 kB
build/block-library/blocks/navigation/view.min.js 2.79 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 172 B
build/block-library/blocks/page-list/style.css 172 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/style-rtl.css 444 B
build/block-library/blocks/post-comments-form/style.css 444 B
build/block-library/blocks/post-comments/style-rtl.css 492 B
build/block-library/blocks/post-comments/style.css 493 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 391 B
build/block-library/blocks/post-template/style.css 392 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 378 B
build/block-library/blocks/pullquote/style.css 378 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 273 B
build/block-library/blocks/query-pagination/style.css 269 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 245 B
build/block-library/blocks/separator/style.css 245 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 772 B
build/block-library/blocks/site-logo/editor.css 772 B
build/block-library/blocks/site-logo/style-rtl.css 165 B
build/block-library/blocks/site-logo/style.css 165 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 670 B
build/block-library/blocks/social-links/editor.css 669 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB
build/block-library/blocks/social-links/style.css 1.32 kB
build/block-library/blocks/spacer/editor-rtl.css 307 B
build/block-library/blocks/spacer/editor.css 307 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 146 B
build/block-library/blocks/tag-cloud/style.css 146 B
build/block-library/blocks/template-part/editor-rtl.css 560 B
build/block-library/blocks/template-part/editor.css 559 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 569 B
build/block-library/blocks/video/editor.css 570 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 857 B
build/block-library/common.css 856 B
build/block-library/editor-rtl.css 9.93 kB
build/block-library/editor.css 9.93 kB
build/block-library/index.min.js 162 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 10.7 kB
build/block-library/style.css 10.7 kB
build/block-library/theme-rtl.css 672 B
build/block-library/theme.css 677 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/blocks/index.min.js 46.3 kB
build/components/style-rtl.css 15.5 kB
build/components/style.css 15.5 kB
build/compose/index.min.js 10.9 kB
build/core-data/index.min.js 13.2 kB
build/customize-widgets/index.min.js 11.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 631 B
build/data/index.min.js 7.49 kB
build/date/index.min.js 31.5 kB
build/deprecated/index.min.js 485 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.5 kB
build/edit-navigation/index.min.js 16 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-post/index.min.js 29.6 kB
build/edit-post/style-rtl.css 7.1 kB
build/edit-post/style.css 7.09 kB
build/edit-site/style-rtl.css 6.57 kB
build/edit-site/style.css 6.57 kB
build/edit-widgets/index.min.js 16.5 kB
build/edit-widgets/style-rtl.css 4.18 kB
build/edit-widgets/style.css 4.18 kB
build/editor/index.min.js 37.8 kB
build/editor/style-rtl.css 3.78 kB
build/editor/style.css 3.77 kB
build/element/index.min.js 3.29 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 6.58 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.63 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.71 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.8 kB
build/keycodes/index.min.js 1.39 kB
build/list-reusable-blocks/index.min.js 1.72 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 925 B
build/nux/index.min.js 2.08 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.84 kB
build/primitives/index.min.js 924 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/redux-routine/index.min.js 2.65 kB
build/reusable-blocks/index.min.js 2.22 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11 kB
build/server-side-render/index.min.js 1.57 kB
build/shortcode/index.min.js 1.49 kB
build/token-list/index.min.js 639 B
build/url/index.min.js 1.9 kB
build/viewport/index.min.js 1.05 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 7.15 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@geriux geriux force-pushed the rnmobile/feature/word-selected-color branch from aa32acd to 7a1b2cb Compare November 2, 2021 15:29
@geriux geriux removed the [Status] In Progress Tracking issues with work in progress label Nov 3, 2021
@geriux
Copy link
Member Author

geriux commented Nov 3, 2021

Hey @iamthomasbishop 👋 this feature is ready to be reviewed, would you mind checking it out when you have some time?

Thank you so much!

@geriux geriux marked this pull request as ready for review November 3, 2021 15:43
@geriux geriux requested review from antonis and removed request for cameronvoell and guarani November 3, 2021 15:44
@iamthomasbishop
Copy link

iamthomasbishop commented Nov 3, 2021

@geriux Thanks for the ping, this is looking and working great! I only have a few concerns, none of which are huge deals. I also noticed one semi-related thing, which isn't specific to this work but wanted to document in case we can tackle it soon. And then the last thing is a suggestion for future iterations, to have "on the record" 🙂 Let me know if you have any questions or if any of the requests will be especially challenging.

Contrast with button background

On the selected text color button, the icon can get lost in cases where the selected color is close to the background color of the button. Are we able to dynamically set the button background (behind the "A" icon) to the color of the actual block background behind it in the same way the web editor handles this? If not, we might want to consider a different treatment when a custom color is active.

(Note: I understand that this exact same problem will arise if the user manually sets the text color to something close to the background color, but at least in that case the colors are accurate to the output and represented on the canvas itself; as well as in the preview.)

Toolbar position

I'm curious, would it be difficult for us to move the colors button to a separate group on the block toolbar? As far as I know, we're simply following the order from the web, but I'm not sure if that is hard-coded or if we have flexibility in how we're organizing buttons/groups. If we have flexibility, I'd like to separate color out into its own group and place it either immediately after (preferred) or before the formatting group (bold, italic, etc), as demonstrated in these examples:

Semi-related

I'm not able to reproduce this on every tap so I'm unsure what the dimensions are on the "reset" tap target, but I noticed that tapping on or around the hex color label on the footer row of the top level sheet resets the value to its default. I'm assuming this is because most of our standard cell components act in a similar way, where the primary action's tap target spans the entire width of the cell. Ideally, the tap target for the "reset" button should only be as wide as the label (and perhaps slight bit of padding if there is any).

For future consideration

I noticed that if I have a custom color applied to a narrow selection — for example, a word or two in a sentence — then widen that selection to include the original (or go to the block-level color settings), then choose a new color for the wider selection, the previously-customized colors are essentially overridden. This might be expected behavior (I'm 100% sure it matches the behavior of web) but I can imagine a case where I'd like to "lock" certain color on part.

@geriux
Copy link
Member Author

geriux commented Nov 30, 2021

Hey there @antonis @iamthomasbishop 👋 this is ready for another review =)

Could you please check it when you have some time? These builds include the fixes to be able to set a text color when there's no text selected.

Let me know if you find any issues while testing. Thank you!

Copy link
Member

@antonis antonis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your hard work on this @geriux 🙇

These builds include the fixes to be able to set a text color when there's no text selected.

I tested the provided builds and and the issue is resolved. On a 1st pass the code changes also look good 👍

I noticed another issue when a text is not selected and you change the color with the caret at the end of the word (without a whitespace before).

On iOS the last character before the caret changes color
ios.mov
On Android the last character before the caret changes color and returns to the original color when you add a whitespace
android.mp4
Adding this extra observation in case it provides a hint in the source of the issue: On Android when you perform the same steps on a 2nd word the last letter f the 1st word changes color again and remains that way
android2.mp4

@geriux
Copy link
Member Author

geriux commented Dec 1, 2021

Hey @antonis 👋

Thank you for the feedback!

I created new builds with a fix for the cases where the previous last character would change its color, can you please check it again and let me know?

There's one edge case though when you want to change the color right after a character that already has a color set. If you don't add a space to change into a new color, it doesn't work. This also happens in core, since this feature is more focused to "Highlight" a selected text.

@iamthomasbishop
Copy link

@geriux I'm taking the latest build for a spin, it's looking great! I just have a couple of questions/bits of feedback, but I wouldn't necessarily consider them strictly blockers.

Non-block based theme initial state

For non-block-based themes — where we aren't able to display the site background-color and a block doesn't have an overridden background-color setting — can we set the default button background color on the ToolbarButton to the base surface color (white in light mode, black in dark mode) instead of the dark gray that the ToolbarButton currently is? I think this is the missing piece beyond the 3 edge cases you solved for in your previous round. Is something like this proposal possible?

With background, no text colors

Another thing, but this may be out of scope and may have already been discussed. When trying out different flows, I wondered if we should display the background color + default text color on the Toolbar in the case where I've first applied a custom BG color to a block but not adjusted any text colors. Example:

Various states

Here's a quick matrix of the various states, current vs. proposed:

For future consideration

I've also got some ideas for how we might refine the styling on the toolbar button itself to be a bit more flexible, but we can leave that for a future iteration. For the sake of future consideration, here is a quick sketch of what I'm imagining:

@antonis antonis self-requested a review December 2, 2021 10:13
Copy link
Member

@antonis antonis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for making these change @geriux 🙇

I created new builds with a fix for the cases where the previous last character would change its color, can you please check it again and let me know?

I retested the new builds and everything works as expected in my test. The code also LGTM 🎉

There's one edge case though when you want to change the color right after a character that already has a color set. If you don't add a space to change into a new color, it doesn't work. This also happens in core, since this feature is more focused to "Highlight" a selected text.

I was able to reproduce that and I agree that this is not blocking at this point. It would be nice if we could align the color written with the color of the button at the toolbar in this case but this can be handled as a separated issue.

video
color.mov

@geriux
Copy link
Member Author

geriux commented Dec 2, 2021

Hey @iamthomasbishop 👋

Thank you for the feedback! After our internal discussions in regards to the UI, I pushed the latest changes and you can check them once the builds are ready 🙇

Gerardo added 2 commits December 3, 2021 12:05
@iamthomasbishop
Copy link

@geriux Just tested the new build on iOS (iPhone 13 Pro and iPad Pro) and the changes we discussed yesterday are looking great. I'm not seeing any other issues on iOS but haven't had a chance to test on Android yet. I wouldn't expect any Android-specific issues, so if we can confirm that is the case then I think we can go ahead and ship this!

@geriux
Copy link
Member Author

geriux commented Dec 3, 2021

@geriux Just tested the new build on iOS (iPhone 13 Pro and iPad Pro) and the changes we discussed yesterday are looking great. I'm not seeing any other issues on iOS but haven't had a chance to test on Android yet. I wouldn't expect any Android-specific issues, so if we can confirm that is the case then I think we can go ahead and ship this!

Awesome!! 🚀 I checked the Android build and it was working as it was on iOS. Thank you so much for all the feedback and testing! 👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants